package com.whfc.ms.api.md.service;

import com.whfc.base.dto.AppWeatherDTO;
import com.whfc.common.result.PageData;
import com.whfc.env.dto.EnvDataLogAnalysisDTO;
import com.whfc.env.dto.EnvDustDTO;
import com.whfc.env.dto.EnvDustDataDTO;
import com.whfc.env.dto.EnvWarnRecordDTO;

import java.util.Date;
import java.util.List;

/**
 * @author qzexing
 * @version 1.0
 * @date 2021/11/22 10:10
 */
public interface MdEnvBoardService {

    /**
     * 获取环境设备列表
     *
     * @param deptId 组织机构ID
     * @return 环境设备列表
     */
    List<EnvDustDTO> deviceList(Integer deptId);

    /**
     * 获取环境最新数据
     *
     * @param dustId 环境设备ID
     * @return 环境最新数据
     */
    EnvDustDataDTO getLatestData(Integer dustId);

    /**
     * 获取历史数据
     *
     * @param dustId    环境设备ID
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return 环境历史数据
     */
    List<EnvDustDataDTO> getDustDataLog(Integer dustId, Date startTime, Date endTime);

    /**
     * 空气质量环境问题分析
     *
     * @param dustId    环境设备ID
     * @param type      空气质量类型
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return 环境问题分析
     */
    EnvDataLogAnalysisDTO airDataLogAnalysis(Integer dustId, String type, Date startTime, Date endTime);

    /**
     * 获取指定设备报警列表
     *
     * @param dustId
     * @param ruleType
     * @param pageNum
     * @param pageSize
     * @param startTime
     * @param endTime
     * @return
     */
    PageData<EnvWarnRecordDTO> getEnvDeviceWarnRecordList(Integer dustId, Integer ruleType, Integer pageNum, Integer pageSize, Date startTime, Date endTime);

    /**
     * 获取天气列表
     *
     * @param deptId 组织机构ID
     * @return 天气列表
     */
    List<AppWeatherDTO> getWeatherList(Integer deptId);

}
